<?php

class UtilisateurManager extends Model{
	protected $projet;
	const TYPE_PARTICULIER = "Particulier";
	const TYPE_RESTAURATION = "Restaurant";
	const TYPE_HOTELERIE = "Hotel";
	const TYPE_FOURNISSEUR = "Fournisseur";
    const TYPE_TRAITEUR = "Traiteur";
	
	public function telValide($tel,$id=null){
		$req = $this->pdo->prepare("SELECT * FROM particulier WHERE telephone_particulier = :tel");
		$req->bindValue(':tel',$tel);
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		if(!empty($donnee)){
			if ($donnee->id_utilisateur==$id){
				return true;	
			}
		}
		
		$req = $this->pdo->prepare("SELECT * FROM hotel WHERE telephone_hotel = :tel");
		$req->bindValue(':tel',$tel);
		$req->execute();
		$donnee1 = $req->fetch();
		
		$req = $this->pdo->prepare("SELECT * FROM restaurant WHERE telephone_restaurant = :tel");
		$req->bindValue(':tel',$tel);
		$req->execute();
		$donnee2 = $req->fetch();
		
		$req = $this->pdo->prepare("SELECT * FROM fournisseur WHERE telephone_fournisseur = :tel");
		$req->bindValue(':tel',$tel);
		$req->execute();
		$donnee3 = $req->fetch();
		
		return empty($donnee) && empty($donnee1) && empty($donnee2) && empty($donnee3);		
	}
	
	public function mailValide($mail,$id=null){
		$req = $this->pdo->prepare("SELECT * FROM utilisateur WHERE email_utilisateur = :email");
		$req->bindValue(':email',$mail);
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		if(!empty($donnee)){
			if ($donnee->id_utilisateur==$id){
				return true;	
			}
		}

		$req = $this->pdo->prepare("SELECT * FROM restaurant WHERE email_restaurant = :email");
		$req->bindValue(':email',$mail);
		$req->execute();
		$donnee1 = $req->fetch();
		$req = $this->pdo->prepare("SELECT * FROM fournisseur WHERE email_fournisseur = :email");
		$req->bindValue(':email',$mail);
		$req->execute();
		$donnee2 = $req->fetch();
		$req = $this->pdo->prepare("SELECT * FROM hotel WHERE email_hotel = :email");
		$req->bindValue(':email',$mail);
		$req->execute();
		$donnee2 = $req->fetch();
		return empty($donnee) && empty($donnee1) && empty($donnee2) && empty($donnee3);	
	}
	
	public function mailValideCible($email,$table,$champ){
		$req = $this->pdo->prepare("SELECT * FROM $table WHERE $champ = :email");
		$req->bindValue(':email',$email);
		$req->execute();
		$donnee = $req->fetch();
		return empty($donnee);	
	}

	/**
	*	inscription d'un utilisateur (particulier,restaurateur,hotelier)
	**/
	public function inscrireParticulier(Utilisateur $user,$adresse=null,$particulier=null){
		//le tableau comportant les erreurs pouvant survenir
		$erreurs = array();
		//si on doit inscrire un particulier
		
		if($user->getType()===self::TYPE_PARTICULIER){
			//insertion des infos de l'utilisateur
			if($this->telValide($particulier->getTelephone())){
			$donnee = $this->insertUser($user);
			//si la requete s'est bien effectué et que le numero de tel est valide 
			if(!empty($donnee) && $this->telValide($particulier->getTelephone())){
				//on recupere l'identifiant de l'utilisateur qu'on vient d'inserer
				$id = $this->getId($user->getEmail());
				
				//insertion des infos du particulier
				$req = $this->pdo->prepare('INSERT INTO particulier SET id_utilisateur = :id, telephone_particulier = 
				:telephone, fonction_particulier= :fonction');	
				$req->bindValue(':id',$id);
				$req->bindValue(':telephone',$particulier->getTelephone());
				$req->bindValue(':fonction',$particulier->getFonction());	
				$req->execute();
				
				//insertion de l'adresse du particulier 
				$addr = $adresse->getAdresse();
				$ville = $adresse->getVille();
				$pays = $adresse->getPays();
				$code = $adresse->getCode_postal();
				
				$this->pdo->query("INSERT INTO adresse VALUES('','$pays', '$ville','$code' ,'$addr' ,'$id')");
								
			} else {
			
				  $erreurs['email'] = true;
			  
		}
		} else {
			
			   	$erreurs['telephone'] = true;
			}
		}
		return $erreurs;
	}
	public function supprimerUtilisateur(Utilisateur $user){
		
	}
	public function update(Utilisateur $user){
		
	}
	
	public function inscrireRestaurateur($user,$resto,$adresse){
			$erreurs = array();
			if($this->telValide($resto->telephone_restaurant) && $this->mailValide($user->getEmail())){
				$donnee = $this->insertUser($user);	
				//on recupere l'indentifiant de l'utilisateur
					$id = $this->getId($user->getEmail());
					
					$req = $this->pdo->prepare('INSERT INTO restaurant SET referent_restaurant = :referent, 
					nom_restaurant = :nom, telephone_restaurant =:telephone, description_restaurant =:description,
					site_restaurant = :site');
					$req->bindValue('referent',$id,PDO::PARAM_INT);
					$req->bindValue('nom',$resto->nom_restaurant);
					$req->bindValue('telephone',$resto->telephone_restaurant);
					$req->bindValue('description',$resto->description_restaurant);
					$req->bindValue('site',$resto->site_restaurant);
					$req->execute();
					
					//insertion de l'adresse du particulier 
					$this->insertAdresse($adresse,$id);
					
					$this->pdo->query("INSERT INTO horaire_restaurant VALUES('','$id','/','/','/','/','/','/','/')");
					
				} else { 
					if(!$this->mailValide($user->getEmail()))
						$erreurs['email']=true;
					else
						$erreurs['telephone'] = true;
			}
			

		return $erreurs;
	}
	
	public function inscrireHotelier($user,$hotel,$adresse){
			
			$erreurs = array();
			if($this->telValide($hotel->telephone_hotel) && $this->mailValide($user->getEmail())){
				
					$donnee = $this->insertUser($user);	
					//on recupere l'indentifiant de l'utilisateur
					$id = $this->getId($user->getEmail());
					//on insert l'hotel dans la base de donnée
					$req = $this->pdo->prepare('INSERT INTO hotel SET referent_hotel = :referent, nom_hotel =:nom, 
					telephone_hotel = :telephone, nombre_etoile = :etoile, nombre_chambre = :chambre, 
					description_hotel = :description, site_hotel = :site , email_hotel=:email');
					
					$req->bindValue(':referent',$id,PDO::PARAM_INT);
					$req->bindValue(':nom',$hotel->nom_hotel);
					$req->bindValue(':telephone',$hotel->telephone_hotel);
					$req->bindValue(':etoile',$hotel->nombre_etoile,PDO::PARAM_INT);
					$req->bindValue(':chambre',$hotel->nombre_chambre,PDO::PARAM_INT);
					$req->bindValue(':description',$hotel->description_hotel);
					$req->bindValue(':site',$hotel->site_hotel);
					$req->bindValue(':email',$hotel->email_hotel);
					$req->execute();
					
					//insertion de l'adresse du particulier 
					$this->insertAdresse($adresse,$id);
					
				} else {
					if(!$this->mailValide($user->getEmail()))
						$erreurs['email'] = true;
					else
						$erreurs['telephone'] = true;	
			}
			return $erreurs;
	}
	
	public function insertAdresse($adresse,$referent){
		$req = $this->pdo->prepare('INSERT INTO adresse SET pays =:pays, ville =:ville, code_postal =:code_postal, 
		adresse =:adresse, referent=:referent');
		$req->bindValue(':pays',$adresse->getPays());
		$req->bindValue(':ville',$adresse->getVille());
		$req->bindValue(':code_postal',$adresse->getCode_Postal());
		$req->bindValue(':adresse',$adresse->getAdresse());
		$req->bindValue(':referent',$referent,PDO::PARAM_INT);
		$donne = $req->execute();
		
	}
	
	public function getInfoParticulier($email,$password){
		
		$user = $this->getUtilisateur($email,$password);
		$id_user =  $user->id_utilisateur;
		$req = $this->pdo->prepare('SELECT * FROM particulier WHERE id_utilisateur = :id');
		$req->bindValue(':id',$id_user,PDO::PARAM_INT);
		$req->execute();
		$info = $req->fetch(PDO::FETCH_OBJ);
		$resultat = array();
		//on recupere les informations sur son adresse
		$adresse = $this->getAdresse($id_user);
		$resultat[] = $user;
		$resultat[] = $info;
		$resultat[] = $adresse;
		return $resultat;
			
	}
	
	public function getInfoRestaurant($email,$password){
		
		$user = $this->getUtilisateur($email,$password);
		$id_user =  $user->id_utilisateur;
		
		$req = $this->pdo->query("SELECT * FROM restaurant WHERE referent_restaurant  = $id_user");
		$resto = $req->fetch(PDO::FETCH_OBJ);
		
		//on recupere les informations sur son adresse
		$adresse = $this->getAdresse($id_user);
		
		$req = $this->pdo->query("SELECT * FROM horaire_restaurant WHERE id_restaurant = $id_user");
		$horaire = $req->fetch(PDO::FETCH_OBJ);
		
		$resultat = array();
		$resultat['user'] = $user;
		$resultat['resto'] = $resto;
		$resultat['adresse'] = $adresse;
		$resultat['horaire'] = $horaire;
		return $resultat;
		
	}
	
	public function getInfosHotel($email,$password){
		$user = $this->getUtilisateur($email,$password);
		$id_user = $user->id_utilisateur;
		$adresse = $this->getAdresse($id_user);
		$hotel = $this->getHotel($id_user);
		$resultat = array();
		$resultat['user'] = $user;
		$resultat['hotel'] = $hotel;
		$resultat['adresse'] = $adresse;
		return $resultat;
	}
	
	public function getInfosFournisseur($email,$password){
		$user = $this->getUtilisateur($email,$password);
		$id_user = $user->id_utilisateur;
		$adresse = $this->getAdresse($id_user);
		$fournisseur = $this->getFournisseur($id_user);	
		$resultats = array();
		$resultats['user'] = $user;
		$resultats['fournisseur'] = $fournisseur;
		$resultats['adresse'] = $adresse;
		return $resultats;
	}
	
	public function updateAdresse($ville,/*$pays,*/$code,$adresse,$referent){
		$req = $this->pdo->prepare("UPDATE adresse SET ville = :ville , code_postal = :code_postal,
		 adresse = :adresse WHERE referent = :referent ");
		/*$req->bindValue(':pays',$pays);*/
		$req->bindValue(':ville',$ville);
		$req->bindValue(':code_postal',$code);
		$req->bindValue(':adresse',$adresse);
		$req->bindValue(':referent',$referent);
		$req->execute();
	}
	public function updateEmailPassword($nouveau_mail,$nouveau_pass,$id){
		//on verifie si le nouveau mail est valide
		
		if($this->mailValide($nouveau_mail)){
			$req = $this->pdo->prepare("UPDATE utilisateur SET email_utilisateur = :email WHERE id_utilisateur = :id ");
			$req->bindValue(':email',$nouveau_mail);
			$req->bindValue(':id',$id);
			$req->execute();
			//on charge le nouveau mail
			$_SESSION['email'] = $nouveau_mail;
		}
			$req = $this->pdo->prepare("UPDATE utilisateur SET pass_utilisateur = :pass WHERE id_utilisateur = :id ");
			$req->bindValue(':pass',$nouveau_pass);
			$req->bindValue(':id',$id);
			$req->execute();
			$_SESSION['password'] = $nouveau_pass;
		
	}
	public function updateTelFonc($tel,$fonction,$id_utilisateur){
		//on verifie si le nouveau numero de tel est valide
		if($this->telValide($tel)){
		$req = $this->pdo->prepare("UPDATE particulier SET telephone_particulier = :telephone WHERE id_utilisateur = :id ");
		$req->bindValue(':telephone',$tel);
		$req->bindValue(':id',$id_utilisateur);
		$req->execute();
		}
		$req = $this->pdo->prepare("UPDATE particulier SET fonction_particulier = :fonction WHERE id_utilisateur = :id ");
		$req->bindValue(':fonction',$fonction);
		$req->bindValue(':id',$id_utilisateur);
		$req->execute();
		
	}
	
	public function updateInfosResto($nom,$telephone,$email,$site,$description){
		$id = $_SESSION['id_utilisateur'];
		$req = $this->pdo->prepare('UPDATE restaurant SET nom_restaurant = :nom, telephone_restaurant = :telephone,
		email_restaurant = :email, description_restaurant = :description , site_restaurant = :site WHERE 
		referent_restaurant = :id');
		$req->bindValue(':nom',$nom);
		$req->bindValue(':telephone',$telephone);
		$req->bindValue(':email',$email);
		$req->bindValue(':description',$description);
		$req->bindValue(':site',$site);
		$req->bindValue(':id',$id,PDO::PARAM_INT);
		$req->execute();
	}

	public function updateHoraire($lundi,$mardi,$mercredi,$jeudi,$vendredi,$samedi,$dimanche){
		$id = $_SESSION['id_utilisateur'];
		$req = $this->pdo->prepare('UPDATE horaire_restaurant SET lundi = :lundi, mardi = :mardi, mercredi = :mercredi
		, jeudi = :jeudi, vendredi = :vendredi, samedi = :samedi, dimanche = :dimanche WHERE id_restaurant = :id');
		$req->bindValue(':lundi',$lundi);
		$req->bindValue(':mardi',$mardi);
		$req->bindValue(':mercredi',$mercredi);
		$req->bindValue(':jeudi',$jeudi);
		$req->bindValue(':vendredi',$vendredi);
		$req->bindValue(':samedi',$samedi);
		$req->bindValue(':dimanche',$dimanche);
		$req->bindValue(':id',$id);
		$req->execute();
	}
	
	public function updateInfosHotel($nom,$tel,$nbre_etoile,$nbre_chambre,$description,$site){
		$id = $_SESSION['id_utilisateur'];
		$req = $this->pdo->prepare("UPDATE hotel SET nom_hotel = :nom, telephone_hotel = :tel, nombre_etoile = 
		:nbre_etoile, nombre_chambre = :nbre_chambre, description_hotel = :description, site_hotel = :site WHERE 
		referent_hotel = :referent");
		$req->bindValue(':nom',$nom);
		$req->bindValue(':tel',$tel);
		$req->bindValue(':nbre_etoile',$nbre_etoile,PDO::PARAM_INT);
		$req->bindValue(':nbre_chambre',$nbre_chambre,PDO::PARAM_INT);
		$req->bindValue(':description',$description);
		$req->bindValue(':site',$site);
		$req->bindValue(':referent',$id,PDO::PARAM_INT);
		$req->execute();
		
	}
	public function updateInfosFournisseur(array $liste,$id){
		foreach($liste as $key => $value){
		$req = $this->pdo->prepare('UPDATE fournisseur SET '.$key.' =:valeur WHERE referent_fournisseur= :referent');
		$req->bindValue(':valeur',$value);
		$req->bindValue(':referent',$id);
		$req->execute();	
		}
	}
	public function getTypeProfessionnel($id){
		$req = $this->pdo->prepare('SELECT type_utilisateur FROM utilisateur WHERE id_utilisateur =:id');
		$req->bindValue(':id',intval($id));
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		if(!empty($donnee))
		return $donnee->type_utilisateur;	
	}
	
	public function getHoraireResto($id_resto){
		$req = $this->pdo->prepare('SELECT * from horaire_restaurant WHERE id_restaurant = :id');
		$req->bindValue(':id',intval($id_resto));
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		return $donnee;	
	}
	
	public function inscrireFournisseur($user,$type_fournisseur,$nom_activite,$nom_entre=null,$forme_juri=null
	,$siret=null,$tel,$email,$site,$details=null,$adresse){
		
		if($type_fournisseur=="Particulier"){
			$this->insertUser($user);
			$referent = $this->pdo->lastInsertId();
			$this->insertAdresse($adresse,$referent);
			$req = $this->pdo->prepare('INSERT INTO fournisseur SET referent_fournisseur = :referent, type_fournisseur=
			:type, activite_fournisseur =:activite, telephone_fournisseur=:telephone, email_fournisseur =:email,
			site_fournisseur =:site ,details_fournisseur= :details');
			$req->bindValue(':referent',$referent,PDO::PARAM_INT);
			$req->bindValue(':type',$type_fournisseur);
			$req->bindValue(':activite',$nom_activite);
			$req->bindValue(':telephone',$tel);
			$req->bindValue(':email',$email);
			$req->bindValue(':site',$site);
			$req->bindValue(':details',$details);
			$donnee = $req->execute();
			
		} else if($type_fournisseur=="Entreprise"){
			$this->insertUser($user);
			$referent = $this->pdo->lastInsertId();
			$this->insertAdresse($adresse,$referent);
			$req = $this->pdo->prepare('INSERT INTO fournisseur SET referent_fournisseur = :referent, type_fournisseur=
			:type, activite_fournisseur =:activite, telephone_fournisseur=:telephone, email_fournisseur =:email,
			nom_entreprise_fournisseur =:nom_entre,siret_fournisseur=:siret,forme_juridique_fournisseur=
			:forme,details_fournisseur= :details, site_fournisseur=:site');
			$req->bindValue(':referent',$referent,PDO::PARAM_INT);
			$req->bindValue(':type',$type_fournisseur);
			$req->bindValue(':activite',$nom_activite);
			$req->bindValue(':telephone',$tel);
			$req->bindValue(':email',$email);
			$req->bindValue(':nom_entre',$nom_entre);
			$req->bindValue(':siret',$siret);
			$req->bindValue(':forme',$forme_juri);
			$req->bindValue(':site',$site);
			$req->bindValue(':details',$details);
			$req->execute();

		} else {
			$erreurs['erreur'] = 'Le type de founisseur est non valide .';
			return $erreurs;
		}
	}
	
	public function getFournisseur($id_user){
		$req = $this->pdo->prepare('SELECT * FROM fournisseur WHERE referent_fournisseur =:referent ');
		$req->bindValue(':referent',$id_user);
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		return $donnee;
	}

    public function getHotelById($id_hotel){
        $req = $this->pdo->prepare("SElect * from hotel , option_hotel, utilisateur, adresse where
            hotel.id_hotel=:id and hotel.referent_hotel=utilisateur.id_utilisateur
            and adresse.referent=utilisateur.id_utilisateur and option_hotel.id_hotel=utilisateur.id_utilisateur");
        $req->bindValue(':id',$id_hotel);
        $req->execute();
        $donnee = $req->fetch(PDO::FETCH_OBJ);
        return $donnee;
    }

    public function getRestoById($id_resto){
        $req = $this->pdo->prepare("SElect * from restaurant , option_restaurant, utilisateur, adresse where
            restaurant.id_restaurant=:id and restaurant.referent_restaurant=utilisateur.id_utilisateur
            and adresse.referent=utilisateur.id_utilisateur and option_restaurant.id_restaurant=utilisateur.id_utilisateur");
        $req->bindValue(':id',$id_resto);
        $req->execute();
        $donnee = $req->fetch(PDO::FETCH_OBJ);

        return $donnee;
    }

    public function getTraiteurById($id_traiteur){
        $req = $this->pdo->prepare("SElect * from traiteur , option_traiteur, utilisateur, adresse where
            traiteur.id_traiteur=:id and traiteur.referent_traiteur=utilisateur.id_utilisateur
            and adresse.referent=utilisateur.id_utilisateur and option_restaurant.id_traiteur=utilisateur.id_utilisateur");
        $req->bindValue(':id',$id_traiteur);
        $req->execute();
        $donnee = $req->fetch(PDO::FETCH_OBJ);

        return $donnee;
    }

    public function getFournisseurById($id_resto){
        $req = $this->pdo->prepare("SElect * from fournisseur , utilisateur, adresse where
            fournisseur.id_fournisseur=:id and fournisseur.referent_fournisseur=utilisateur.id_utilisateur
            and adresse.referent=utilisateur.id_utilisateur ");
        $req->bindValue(':id',$id_resto);
        $req->execute();
        $donnee = $req->fetch(PDO::FETCH_OBJ);
        return $donnee;
    }

    public function rechercheFournisseur($name,$ville){
        $sql = "SELECT * FROM fournisseur ";
        if($ville!='' and $name != ''){
            $sql .= ", Adresse where
        (fournisseur.activite_fournisseur= :activite
        or fournisseur.nom_entreprise_fournisseur= :nom)
        and fournisseur.referent_fournisseur=adresse.referent
        and (adresse.ville= :ville or adresse.code_postal=:code) LIMIT 0,10";
            $req = $this->pdo->prepare($sql);
            $req->bindValue(':activite',$name);
            $req->bindValue(':nom',$name);
            $req->bindValue(':ville',$ville);
            $req->bindValue(':code',$ville);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        } else if($name != ''){
            $sql .= "where
        (fournisseur.activite_fournisseur= :activite
        or fournisseur.nom_entreprise_fournisseur like '%$name%')";
            $req = $this->pdo->prepare($sql);
            $req->bindValue(':activite',$name);
            //$req->bindValue(':nom',$name);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        } else if($ville!='') {
            $sql .= ", Adresse where fournisseur.referent_fournisseur=adresse.referent
        and (adresse.ville= :ville or adresse.code_postal=:code)";
            $req = $this->pdo->prepare($sql);
            $req->bindValue(':ville',$ville);
            $req->bindValue(':code',$ville);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        }

        $req = $this->pdo->prepare($sql.' LIMIT 0,20');
        $req->execute();
        return $req->fetchAll(PDO::FETCH_OBJ);
    }

    public function rechercheResto($name,$ville){
        $sql = "SELECT * FROM restaurant ";
        if($ville!='' and $name != ''){
            $sql .= ", Adresse where
        (restaurant.nom_restaurant like '%$name%')
        and restaurant.referent_restaurant=adresse.referent
        and (adresse.ville= :ville or adresse.code_postal=:code) LIMIT 0,30";
            $req = $this->pdo->prepare($sql);
            $req->bindValue(':ville',$ville);
            $req->bindValue(':code',$ville);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        } else if($name != ''){
            $sql .= ", Adresse where restaurant.referent_restaurant=adresse.referent and
        (restaurant.nom_restaurant like '%$name%')";
            $req = $this->pdo->prepare($sql);
            //$req->bindValue(':nom',$name);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        } else if($ville!='') {
            $sql .= ", Adresse where restaurant.referent_restaurant=adresse.referent
        and (adresse.ville= :ville or adresse.code_postal=:code)";
            $req = $this->pdo->prepare($sql);
            $req->bindValue(':ville',$ville);
            $req->bindValue(':code',$ville);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        }

        $req = $this->pdo->prepare($sql.', Adresse where restaurant.referent_restaurant=adresse.referent LIMIT 0,30');
        $req->execute();
        return $req->fetchAll(PDO::FETCH_OBJ);
    }

    public function rechercheHotel($name,$ville){
        $sql = "SELECT * FROM hotel ";
        if($ville!='' and $name != ''){
            $sql .= ", Adresse where
        (hotel.nom_hotel like '%$name%')
        and hotel.referent_hotel=adresse.referent
        and (adresse.ville= :ville or adresse.code_postal=:code) LIMIT 0,30";
            $req = $this->pdo->prepare($sql);
            $req->bindValue(':ville',$ville);
            $req->bindValue(':code',$ville);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        } else if($name != ''){
            $sql .= ",Adresse where hotel.referent_hotel=adresse.referent and
        (hotel.nom_hotel like '%$name%')";
            $req = $this->pdo->prepare($sql);
            //$req->bindValue(':nom',$name);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        } else if($ville!='') {
            $sql .= ", Adresse where hotel.referent_hotel=adresse.referent
        and (adresse.ville= :ville or adresse.code_postal=:code)";
            $req = $this->pdo->prepare($sql);
            $req->bindValue(':ville',$ville);
            $req->bindValue(':code',$ville);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
        }

        $req = $this->pdo->prepare($sql.',Adresse where hotel.referent_hotel=adresse.referent  LIMIT 0,30');
        $req->execute();
        return $req->fetchAll(PDO::FETCH_OBJ);
    }

}